package sv.com.bolsaTrabajo.view.bean.managedbeans;

import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.primefaces.context.RequestContext;
import sv.com.bolsaTrabajo.model.dao.RolFacade;
import sv.com.bolsaTrabajo.model.entities.Rol;
import sv.com.bolsaTrabajo.view.bean.ManejadorAccion;

/**
 *
 * @author Karina Palacios
 */
@ManagedBean
@SessionScoped
public final class RolMB extends ManejadorAccion {

    @EJB
    private RolFacade rolFacade;
    private Rol rol;
    private List<Rol> roles;

    /**
     * Constructor
     */
    public RolMB() {
        limpiarRol();
        rol = new Rol();
    }

    public void limpiarRol() {
        setRol(new Rol());
    }

    public List<Rol> getRoles() {
        roles = rolFacade.obtenerTodos();
        return roles;
    }

    public void guardarEntidad() {
        try {
            System.out.println("====> Ingresando a crear Rol");
            getRol().setFechaMod(new Date());

            if (rol.getIdRol()== null) {
                rolFacade.crear(rol);
                lanzarMensajeInformacion("Exito", "Rol guardada correctamente");

            } else {
                rolFacade.modificar(rol);
                lanzarMensajeInformacion("Exito", "Rol modificada correctamente");

            }
            RequestContext.getCurrentInstance().update("IDFrmRol");
            RequestContext.getCurrentInstance().execute("WVDialogRol.hide();");

        } catch (Exception e) {
            lanzarMensajeError("", "Error al guardar Rol ", e);
        }
    }

    public void modificarEntidad(Rol modRol) {
        try {
            this.rol = modRol;
        } catch (Exception e) {
            lanzarMensajeError("Error al actualizar datos", "No se pueden asignar los valores para Rol", e);

        }
        RequestContext.getCurrentInstance().update("");
    }

    /**
     * ****************** Getters and Setter ********************
     */
    
    public RolFacade getRolFacade() {
        return rolFacade;
    }

    public void setRolFacade(RolFacade rolFacade) {
        this.rolFacade = rolFacade;
    }

    public Rol getRol() {
        return rol;
    }

    public void setRol(Rol rol) {
        this.rol = rol;
    }  
 }
